home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 April: Mac OS SDK / Dev.CD Apr 00 SDK1.toast / Development Kits / Mac OS / AppleShare IP 6.3 SDK / ASIP Registry / Headers / AppleShareRegistry.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-11-01  |  18.5 KB  |  654 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        AppleShareRegistry.h
  3.  
  4.      Contains:    AppleShareRegistry data types Interfaces. Formerly known as OAM and OAMTypes...
  5.  
  6.      Version:    Technology:    AppleShare IP 6.0
  7.                  Release:    ASIP 6.2 SDK - Wednesday, August 25, 1999 09:29:55
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __APPLESHAREREGISTRY__
  18. #define __APPLESHAREREGISTRY__
  19.  
  20. #ifndef __MIXEDMODE__
  21. #include <MixedMode.h>
  22. #endif
  23.  
  24. #ifndef __MACTYPES__
  25. #include <MacTypes.h>
  26. #endif
  27.  
  28.  
  29.  
  30.  
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_STRUCT_ALIGN
  44.     #pragma options align=mac68k
  45. #elif PRAGMA_STRUCT_PACKPUSH
  46.     #pragma pack(push, 2)
  47. #elif PRAGMA_STRUCT_PACK
  48.     #pragma pack(2)
  49. #endif
  50.  
  51. enum {
  52.     kOAMMachineShortID            = 0,
  53.     kOAMOwnerShortID            = 1
  54. };
  55.  
  56. /* Object Types & Attribute Signatures*/
  57. enum {
  58.     kOAMAnyObjectType            = FOUR_CHAR_CODE('****'),
  59.     kOAMMachine                    = FOUR_CHAR_CODE('mach'),
  60.     kOAMUser                    = FOUR_CHAR_CODE('user'),
  61.     kOAMGroup                    = FOUR_CHAR_CODE('grop'),
  62.     kOAMService                    = FOUR_CHAR_CODE('serv')
  63. };
  64.  
  65. /* Attribute Signatures */
  66. enum {
  67.     kOAMBasic                    = FOUR_CHAR_CODE('----'),
  68.     kOAMGestalt                    = FOUR_CHAR_CODE('gest'),
  69.     kOAMClassicFS                = FOUR_CHAR_CODE('clfs')
  70. };
  71.  
  72. /* Attribute Types */
  73. enum {
  74.                                                                 /* All Objects */
  75.     kOAMShortID                    = FOUR_CHAR_CODE('shid'),        /* UInt32 */
  76.     kOAMName                    = FOUR_CHAR_CODE('name'),        /* Str31 */
  77.     kOAMInternetName            = FOUR_CHAR_CODE('inam'),        /* Str31 */
  78.     kOAMType                    = FOUR_CHAR_CODE('type'),        /* OSType */
  79.                                                                 /* User Object Attributes */
  80.     kOAMPasswordAttribute        = FOUR_CHAR_CODE('pwd '),        /* char[8] (zero padded) */
  81.     kOAMPasswordLen                = FOUR_CHAR_CODE('pwdL'),        /* UInt8 */
  82.     kOAMUserFlags                = FOUR_CHAR_CODE('flgs'),        /* UInt16 */
  83.     kOAMUserFailedPasswordAttempts = FOUR_CHAR_CODE('blog'),    /* UInt16 */
  84.     kOAMUserPasswordCreationTime = FOUR_CHAR_CODE('pwdD'),        /* UInt32 (set by OAM agent) */
  85.     kOAMUserNumGroups            = FOUR_CHAR_CODE('nmem'),        /* UInt16 (read only) */
  86.     kOAMPrimaryGroup            = FOUR_CHAR_CODE('pgrp'),        /* UGRec (id and name) */
  87.     kOAMDisableDate                = FOUR_CHAR_CODE('disD'),        /* SInt32 */
  88.     kOAMLastLogin                = FOUR_CHAR_CODE('logD'),        /* SInt32 */
  89.     kOAMUserComment                = FOUR_CHAR_CODE('cmnt'),        /* Str197 */
  90.     kOAMUserPhoneRecord            = FOUR_CHAR_CODE('976 '),        /* OAMUserPhoneRecord */
  91.                                                                 /* Service Object Attributes */
  92.     kOAMShortStatus                = FOUR_CHAR_CODE('shst'),        /* UInt32 */
  93.     kOAMServiceFlags            = FOUR_CHAR_CODE('flag'),        /* OAMFlags */
  94.     kOAMServicePSN                = FOUR_CHAR_CODE('psn '),        /* ProcessSerialNumber */
  95.     kOAMServiceFSSpec            = FOUR_CHAR_CODE('fssp'),        /* FSSpec */
  96.     kOAMServiceClass            = FOUR_CHAR_CODE('styp'),        /* OSType */
  97.                                                                 /*    kOAMServiceType was renamed to kOAMServiceClass.*/
  98.                                                                 /*    6/15/1999 AKN*/
  99.                                                                 /*    kOAMServiceType                     = 'styp',    |* OSType *|    */
  100.     kOAMServiceFileType            = FOUR_CHAR_CODE('type'),        /* OSType */
  101.     kOAMServiceCreator            = FOUR_CHAR_CODE('crtr'),        /* OSType */
  102.                                                                 /* Machine Object Attributes */
  103.     kOAMGuestProgramLinking        = FOUR_CHAR_CODE('gstl'),        /* SInt16 */
  104.     kOAMNoGuestAccess            = FOUR_CHAR_CODE('gsta'),        /* SInt16 */
  105.     kOAMProgramLinking            = FOUR_CHAR_CODE('prgl'),        /* SInt16 */
  106.     kOAMBoot                    = FOUR_CHAR_CODE('boot'),        /* SInt16 */
  107.     kOAMFileSharingEnabled        = FOUR_CHAR_CODE('fshr'),        /* SInt16 */
  108.     kOAMApple2Mode                = FOUR_CHAR_CODE('apl2'),        /* SInt16 */
  109.     kOAMNoSavePassword            = FOUR_CHAR_CODE('spwd'),        /* SInt16 */
  110.     kOAMMultihoming                = FOUR_CHAR_CODE('mlth'),        /* SInt16 */
  111.     kOAMGuestInited                = FOUR_CHAR_CODE('gsti'),        /* SInt16 */
  112.     kOAMUGInited                = FOUR_CHAR_CODE('ugin'),        /* SInt16 */
  113.     kOAMUGFileVersion            = FOUR_CHAR_CODE('vers'),        /* SInt16 (read only) */
  114.     kOAMServerName                = FOUR_CHAR_CODE('name'),        /* Str32 */
  115.     kOAMDefaultShutdown            = FOUR_CHAR_CODE('smin'),        /* SInt16 */
  116.     kOAMMinPasswordLen            = FOUR_CHAR_CODE('plen'),        /* UInt8 */
  117.     kOAMMaxBadLogins            = FOUR_CHAR_CODE('bmax'),        /* SInt16 */
  118.     kOAMMaxPwdChgTime            = FOUR_CHAR_CODE('pwdc'),        /* SInt16 */
  119.     kOAMLoginDisabledTime        = FOUR_CHAR_CODE('disT'),        /* SInt32 */
  120.     kOAMUniqueID                = FOUR_CHAR_CODE('uniq'),        /* SInt32 */
  121.     kOAMMoreSFlags                = FOUR_CHAR_CODE('msfl'),        /* OAMFlags */
  122.     kOAMOtherFlags                = FOUR_CHAR_CODE('oflg'),        /* OAMFlags */
  123.     kOAMOTPort                    = FOUR_CHAR_CODE('port'),        /* SInt16 */
  124.     kOAMEasySetupVersion        = FOUR_CHAR_CODE('easy')        /* NumVersionVariant */
  125. };
  126.  
  127. /* userFlag bits */
  128. enum {
  129.     kOAMDefaultNewUserSettings    = 0,
  130.     kOAMIACEnabledMask            = 0x0001,                        /* IAC is enabled for this user */
  131.     kOAMLoginEnabledMask        = 0x0100,                        /* Login is enabled for this user */
  132.     kOAMSuperUserMask            = 0x0200,                        /* This user is a superuser */
  133.     kOAMDisableChangePwdMask    = 0x0400,                        /* User CANNOT change password */
  134.     kOAMGetNewPwdMask            = 0x1000,
  135.     kOAMUserExpiredMask            = 0x2000                        /* User has been expired */
  136. };
  137.  
  138. /* kShortStatus codes for registered services */
  139. enum {
  140.     kOAMServiceNotRunning        = 1,
  141.     kOAMServiceRunning            = 2,
  142.     kOAMServiceStartingUp        = 3,
  143.     kOAMServiceShutingDown        = 4
  144. };
  145.  
  146. enum {
  147.     kOAMServiceAutoLaunch        = 0x00000001,                    /* Launch on startup */
  148.     kOAMServiceAutoShutdown        = 0x00000002                    /* Shutdown on quit */
  149. };
  150.  
  151. typedef UInt32                             OAMEventCode;
  152. typedef OSStatus                         OAMStatus;
  153. typedef UInt32                             OAMCallID;
  154. typedef UInt32                             OAMSessionID;
  155. typedef OSType                             OAMType;
  156. typedef OAMType *                        OAMTypePtr;
  157. typedef OSType                             OAMObjectType;
  158. typedef UInt32                             OAMFlags;
  159. typedef UInt32                             OAMShortObjectSpec;
  160. typedef UInt32 *                        OAMShortObjectSpecPtr;
  161. enum {
  162.     kOAMOptionFlags                = FOUR_CHAR_CODE('oflg'),
  163.     kOAMOptionThreadBlockCall    = FOUR_CHAR_CODE('tpre'),
  164.     kOAMOptionThreadYieldCall    = FOUR_CHAR_CODE('tpos'),
  165.     kOAMOptionThreadUnblockCall    = FOUR_CHAR_CODE('twak')
  166. };
  167.  
  168. enum {
  169.     kOAMOptionThreadMgr            = 1,
  170.     kOAMOptionExternalThreadMgr    = 2
  171. };
  172.  
  173.  
  174. struct OAMOption {
  175.     OSType                             option;
  176.     UInt32                             value;
  177. };
  178. typedef struct OAMOption                OAMOption;
  179. enum {
  180.     kOAMLocatorAppletalk        = 0
  181. };
  182.  
  183.  
  184. struct OAMServerLocator {
  185.     UInt16                             specSize;                    /* total size of this locator spec struct */
  186.     UInt32                             protType;                    /* kOAMLocatorAppletalk -> appletalk */
  187.     UInt32                             reserved1;
  188.     UInt32                             reserved2;                    /* probably script */
  189.     Str63                             name;
  190.     UInt8                             protSpecific[4];            /* variable size protocol specific part */
  191. };
  192. typedef struct OAMServerLocator            OAMServerLocator;
  193. enum {
  194.     kOAMServerAppleTalk            = 0
  195. };
  196.  
  197.  
  198. struct OAMServerSpec {
  199.     UInt16                             specSize;                    /* total size of this server spec struct */
  200.     UInt32                             protType;                    /* kOAMServerAppleTalk -> appletalk */
  201.     UInt32                             reserved1;
  202.     UInt32                             reserved2;
  203.     Str63                             name;
  204.     UInt8                             protSpecific[4];            /* variable size protocol specific part */
  205. };
  206. typedef struct OAMServerSpec            OAMServerSpec;
  207. /* Special User IDs */
  208. enum {
  209.     kOAMGuestUserID                = 0,
  210.     kOAMMachineOwnerUserID        = 1
  211. };
  212.  
  213. /* Agent Status */
  214. enum {
  215.     kOAMAgentNotInstalled        = 0,
  216.     kOAMAgentNotRunning            = 1,
  217.     kOAMAgentStartingUp            = 2,
  218.     kOAMAgentRunning            = 3,
  219.     kOAMAgentShuttingDown        = 4,
  220.     kOAMAgentNotRunningATTClose    = 5,
  221.     kOAMAgentGenesis            = 6
  222. };
  223.  
  224. /* specType */
  225. enum {
  226.     kOAMObjectSpecNull            = 0,
  227.     kOAMObjectSpecByShortID        = 1,
  228.     kOAMObjectSpecByNameType    = 2
  229. };
  230.  
  231.  
  232. struct OAMObjectSpec {
  233.     OAMType                         objectType;
  234.     OAMType                         specType;                    /* kOAMObjectSpecByShortID->short id, kOAMObjectSpecByNameType->nametype and others... */
  235.     union {
  236.         OAMShortObjectSpec                 shortID;
  237.         Str31                             name;
  238.         UInt8                             otherTypes[4];
  239.     }                                 u;
  240. };
  241. typedef struct OAMObjectSpec            OAMObjectSpec;
  242. /* keyType */
  243. enum {
  244.     kOAMKeyClearText            = 0
  245. };
  246.  
  247.  
  248. struct OAMKey {
  249.     OAMType                         keyType;                    /* kOAMKeyClearText->cleartext password */
  250.     UInt32                             keyBufferLen;
  251.     UInt8                             keyBuffer[8];
  252. };
  253. typedef struct OAMKey                    OAMKey;
  254.  
  255. struct OAMBufferDescriptor {
  256.     void *                            buffer;
  257.     UInt32                             bufferLen;
  258.     UInt32                             actCount;
  259. };
  260. typedef struct OAMBufferDescriptor        OAMBufferDescriptor;
  261.  
  262. struct OAMAttributeDescriptor {
  263.     OAMType                         attributeSignature;
  264.     OAMType                         attributeType;
  265.     OAMBufferDescriptor             bufferDescriptor;
  266.     OSStatus                         status;
  267.     UInt32                             offset;
  268.     UInt32                             actSize;
  269. };
  270. typedef struct OAMAttributeDescriptor    OAMAttributeDescriptor;
  271. /* iterationType */
  272. enum {
  273.     kOAMIterObjects                = 1,
  274.     kOAMIterMembers                = 2,
  275.     kOAMIterMemberships            = 3
  276. };
  277.  
  278. /* iterationFlags */
  279. enum {
  280.     kOAMIterByIndex                = 1,
  281.     kOAMIterByObject            = 2
  282. };
  283.  
  284.  
  285. union OAMSpecOrIndex {
  286.     OAMObjectSpec *                    startingObject;
  287.     UInt32                             startingIndex;
  288. };
  289. typedef union OAMSpecOrIndex            OAMSpecOrIndex;
  290.  
  291. struct OAMIterationSpec {
  292.     OAMType                         iterationType;
  293.     OAMFlags                         iterationFlags;
  294.     OAMTypePtr                         typeList;
  295.     OAMObjectSpec *                    iterArgument;
  296.     UInt32                             maxToGet;
  297.     OAMSpecOrIndex                     u;
  298.                                                                 /* set by call */
  299.     UInt32                             totalSize;
  300.     UInt32                             lastPosition;
  301.     Boolean                         more;
  302. };
  303. typedef struct OAMIterationSpec            OAMIterationSpec;
  304.  
  305. struct OAMParseInfo {
  306.     UInt32                             reserved[32];
  307. };
  308. typedef struct OAMParseInfo                OAMParseInfo;
  309. /* optionType */
  310. enum {
  311.     kOAMNotifyStartOption        = FOUR_CHAR_CODE('nstt'),
  312.     kOAMNotifyStopOption        = FOUR_CHAR_CODE('nstp'),
  313.     kOAMNotifySelfOption        = FOUR_CHAR_CODE('nslf')
  314. };
  315.  
  316. /* notify OAMOptionsFlags */
  317. enum {
  318.     kOAMOptionUserData            = 2
  319. };
  320.  
  321. /* notifyID */
  322. enum {
  323.     kOAMNotifyNewObject            = 1,
  324.     kOAMNotifyDeleteObject        = 2,
  325.     kOAMNotifyRenameObject        = 3,
  326.     kOAMNotifyAttributeSet        = 4,
  327.     kOAMNotifyMemberAdd            = 5,
  328.     kOAMNotifyMemberRemove        = 6,
  329.     kOAMNotifyLogin                = 7,
  330.     kOAMNotifyAll                = 8,
  331.     kOAMMaxNotify                = kOAMNotifyAll
  332. };
  333.  
  334.  
  335. struct OAMBooleanOption {
  336.     UInt16                             value;
  337. };
  338. typedef struct OAMBooleanOption            OAMBooleanOption;
  339. enum {
  340.     kOAMNotifyAllObjects        = -1
  341. };
  342.  
  343.  
  344. struct OAMNotifyOption {
  345.     UInt32                             notifyID;
  346.     UInt32                             objectID;                    /* kOAMNotifyAllObjects -> all objects */
  347. };
  348. typedef struct OAMNotifyOption            OAMNotifyOption;
  349.  
  350. struct OAMNotificationSpec {
  351.     OAMType                         oamType;
  352.     OAMBufferDescriptor             bufferDescriptor;
  353. };
  354. typedef struct OAMNotificationSpec        OAMNotificationSpec;
  355.  
  356. struct OAMNotification {
  357.     UInt16                             version;                    /* 0 */
  358.     OAMSessionID                     sess;
  359.     OAMShortObjectSpec                 objectID;
  360.     UInt32                             notifyID;                    /* notifyID = kOAMNotifyNewObject | kOAMNotifyAttributeSet | .... */
  361.     UInt32                             userData;
  362.     union {
  363.         OAMType                         oamType;
  364.         OAMShortObjectSpec                 member;
  365.     }                                 u;
  366. };
  367. typedef struct OAMNotification            OAMNotification;
  368. /* OAM Notification Support */
  369. typedef CALLBACK_API_C( void , OAMNotificationProcPtr )(OAMNotification *notification);
  370. typedef STACK_UPP_TYPE(OAMNotificationProcPtr)                     OAMNotificationUPP;
  371. #if OPAQUE_UPP_TYPES
  372.     EXTERN_API(OAMNotificationUPP)
  373.     NewOAMNotificationUPP           (OAMNotificationProcPtr    userRoutine);
  374.  
  375.     EXTERN_API(void)
  376.     DisposeOAMNotificationUPP       (OAMNotificationUPP        userUPP);
  377.  
  378.     EXTERN_API(void)
  379.     InvokeOAMNotificationUPP       (OAMNotification *        notification,
  380.                                     OAMNotificationUPP        userUPP);
  381.  
  382. #else
  383.     enum { uppOAMNotificationProcInfo = 0x000000C1 };                 /* no_return_value Func(4_bytes) */
  384.     #define NewOAMNotificationUPP(userRoutine)                         (OAMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOAMNotificationProcInfo, GetCurrentArchitecture())
  385.     #define DisposeOAMNotificationUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  386.     #define InvokeOAMNotificationUPP(notification, userUPP)         CALL_ONE_PARAMETER_UPP((userUPP), uppOAMNotificationProcInfo, (notification))
  387. #endif
  388. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  389. #define NewOAMNotificationProc(userRoutine)                     NewOAMNotificationUPP(userRoutine)
  390. #define CallOAMNotificationProc(userRoutine, notification)        InvokeOAMNotificationUPP(notification, userRoutine)
  391. /* session option */
  392. enum {
  393.     kOAMOptionMemory            = FOUR_CHAR_CODE(' mem')
  394. };
  395.  
  396. /* authentication flags */
  397. enum {
  398.     kOAMAuthLogin                = 0,
  399.     kOAMAuthLoginContinue        = 1,
  400.     kOAMAuthChangeKey            = 2,
  401.     kOAMAuthChangeKeyContinue    = 3
  402. };
  403.  
  404. enum {
  405.     kOAMAuthStream                = 1
  406. };
  407.  
  408.  
  409. struct OAMAuthenticateInfo {
  410.     OAMObjectSpec *                    objectSpec;
  411.     UInt16                             flags;
  412.     UInt16                             stage;                        /* intialial set to zero */
  413.     OAMStatus                         objStatus;
  414.     UInt8                             uam[64];
  415.     UInt8                             reserved[64];
  416. };
  417. typedef struct OAMAuthenticateInfo        OAMAuthenticateInfo;
  418.  
  419. typedef unsigned char                     OAMCallNumber[128];
  420. /* bits for phoneFlags */
  421. enum {
  422.     kOAMLoginBit                = 0,
  423.     kOAMCallbackBit                = 1
  424. };
  425.  
  426.  
  427. struct OAMUserPhoneRecord {
  428.     SInt16                             phoneFlags;
  429.     SInt16                             retryCount;
  430.     OAMCallNumber                     callNum;                    /* callback number*/
  431. };
  432. typedef struct OAMUserPhoneRecord        OAMUserPhoneRecord;
  433. /* Error Codes */
  434. enum {
  435.                                                                 /* General */
  436.     kOAMInitializationErr        = -29300,
  437.     kOAMParameterErr            = -29301,
  438.     kOAMGeneralErr                = -29302,                        /* Objects */
  439.     kOAMObjectNotFoundErr        = -29310,
  440.     kOAMContainerObjectNotFoundErr = -29311,
  441.     kOAMMemberObjectNotFoundErr    = -29312,
  442.     kOAMDuplicateObjectErr        = -29320,
  443.     kOAMCreateRestrictedErr        = -29321,
  444.     kOAMMaximumObjectsErr        = -29330,
  445.     kOAMMaximumMemberObjectsErr    = -29331,                        /* Attributes */
  446.     kOAMAttributeNotFoundErr    = -29340,
  447.     kOAMAttributeReadOnlyErr    = -29341,
  448.     kOAMAttributeReadWriteOnlyErr = -29342,
  449.     kOAMAttributeBufferTooSmallErr = -29343,
  450.     kOAMAttributeBufferTooLargeErr = -29344,
  451.     kOAMMaximumAttributesErr    = -29345,                        /* Buffers */
  452.     kOAMBufferTooSmallErr        = -29350,
  453.     kOAMBufferTooLargeErr        = -29351,                        /* Authentication */
  454.     kOAMAuthenticationErr        = -29360,
  455.     kOAMAuthenticationInProgressErr = -29361,
  456.     kOAMLoginDisabledErr        = -29362,
  457.     kOAMAuthenticationServerErr    = -29363,
  458.     kOAMUAMNotFoundErr            = -29364,
  459.     kOAMAdminDisabledErr        = -29365,
  460.     kOAMAuthenticationAdminErr    = -29366,                        /* Password */
  461.     kOAMPasswordNeedsChangeErr    = -29370,
  462.     kOAMPasswordExpiredErr        = -29371,
  463.     kOAMPasswordMinimumLenErr    = -29372,
  464.     kOAMSamePasswordErr            = -29373,
  465.     kOAMPasswordChangeDisabledErr = -29374,                        /* Session */
  466.     kOAMServerNotFoundErr        = -29380,
  467.     kOAMServerNotInstalledErr    = -29381,
  468.     kOAMServerNotReadyErr        = -29382,
  469.     kOAMNoMachineNameErr        = -29383,
  470.     kOAMRequestTooLargeErr        = -29384,
  471.     kOAMNetworkErr                = -29385,
  472.     kOAMSessionIDErr            = -29386,
  473.     kOAMMaximumSessionsErr        = -29387,
  474.     kOAMSecondaryBusyErr        = -29388
  475. };
  476.  
  477. enum {
  478.     kOAMParseDone                = 99
  479. };
  480.  
  481. EXTERN_API_C( OAMStatus )
  482. OAMInitialize                    (UInt32                 numSessions,
  483.                                  UInt32                 maxNumCalls,
  484.                                  OAMBufferDescriptor *    buffer_i,
  485.                                  OAMOption *            flags_i);
  486.  
  487.  
  488. EXTERN_API_C( OAMStatus )
  489. OAMDeInitialize                    (void);
  490.  
  491. EXTERN_API_C( OAMStatus )
  492. OAMFindServer                    (OAMServerLocator *        locator_i,
  493.                                  OAMBufferDescriptor *    buffer_o,
  494.                                  UInt32 *                numInBuffer_o,
  495.                                  UInt32 *                numFound_o,
  496.                                  OAMOption *            options);
  497.  
  498.  
  499. EXTERN_API_C( OAMStatus )
  500. OAMFindServerExtract            (OAMBufferDescriptor *    buffer_i,
  501.                                  UInt32                 index_i,
  502.                                  OAMServerSpec *        spec_o);
  503.  
  504.  
  505. EXTERN_API_C( UInt32 )
  506. OAMGetSize                        (UInt32                 numSessions,
  507.                                  UInt32                 maxNumCalls);
  508.  
  509. EXTERN_API_C( OAMStatus )
  510. OAMGetLocalServerStatus            (UInt32 *                serverStatus);
  511.  
  512. EXTERN_API_C( OAMStatus )
  513. OAMOpenSession                    (OAMServerSpec *        server_i,
  514.                                  OAMSessionID *            sessID_o,
  515.                                  OAMOption *            options);
  516.  
  517. EXTERN_API_C( OAMStatus )
  518. OAMCloseSession                    (OAMSessionID             sessID_o,
  519.                                  OAMOption *            options);
  520.  
  521. EXTERN_API_C( OAMStatus )
  522. OAMAuthenticateSession            (OAMSessionID             sessID,
  523.                                  OAMObjectSpec *        user,
  524.                                  OAMKey *                key,
  525.                                  OAMOption *            options);
  526.  
  527. EXTERN_API_C( OAMStatus )
  528. OAMCreateObject                    (OAMSessionID             sessID,
  529.                                  OAMObjectSpec *        object,
  530.                                  OAMAttributeDescriptor * attr,
  531.                                  OAMOption *            options);
  532.  
  533. EXTERN_API_C( OAMStatus )
  534. OAMDeleteObject                    (OAMSessionID             sessID,
  535.                                  OAMObjectSpec *        object,
  536.                                  OAMOption *            options);
  537.  
  538. EXTERN_API_C( OAMStatus )
  539. OAMGetAttribute                    (OAMSessionID             sessID,
  540.                                  OAMObjectSpec *        object,
  541.                                  OAMAttributeDescriptor * attr,
  542.                                  OAMOption *            options);
  543.  
  544. EXTERN_API_C( OAMStatus )
  545. OAMSetAttribute                    (OAMSessionID             sessID,
  546.                                  OAMObjectSpec *        key,
  547.                                  OAMAttributeDescriptor * attr,
  548.                                  OAMOption *            options);
  549.  
  550. EXTERN_API_C( OAMStatus )
  551. OAMDeleteAttribute                (OAMSessionID             sessID,
  552.                                  OAMObjectSpec *        object,
  553.                                  OAMAttributeDescriptor * attr,
  554.                                  OAMOption *            options);
  555.  
  556. EXTERN_API_C( OAMStatus )
  557. OAMIsGroupMember                (OAMSessionID             sessID,
  558.                                  OAMObjectSpec *        group,
  559.                                  OAMObjectSpec *        member,
  560.                                  Boolean *                isMember,
  561.                                  OAMOption *            options);
  562.  
  563. EXTERN_API_C( OAMStatus )
  564. OAMAddGroupMember                (OAMSessionID             sessID,
  565.                                  OAMObjectSpec *        group,
  566.                                  OAMObjectSpec *        newMember,
  567.                                  OAMOption *            options);
  568.  
  569. EXTERN_API_C( OAMStatus )
  570. OAMRemoveGroupMember            (OAMSessionID             sessID,
  571.                                  OAMObjectSpec *        group,
  572.                                  OAMObjectSpec *        oldMember,
  573.                                  OAMOption *            options);
  574.  
  575. EXTERN_API_C( OAMStatus )
  576. OAMIterate                        (OAMSessionID             sessID,
  577.                                  OAMIterationSpec *        iterSpec,
  578.                                  OAMAttributeDescriptor * desc,
  579.                                  OAMBufferDescriptor *    buffer,
  580.                                  OAMOption *            options);
  581.  
  582. EXTERN_API_C( OAMStatus )
  583. OAMParseAttributeBuffer            (OAMBufferDescriptor *    buffer,
  584.                                  OAMAttributeDescriptor * desc,
  585.                                  OAMParseInfo *            parseInfo);
  586.  
  587. EXTERN_API_C( OAMStatus )
  588. OAMParseGetNextObject            (OAMParseInfo *            parseInfo,
  589.                                  OAMObjectSpec *        object);
  590.  
  591. EXTERN_API_C( OAMStatus )
  592. OAMParseGetNextAttribute        (OAMParseInfo *            parseInfo,
  593.                                  OAMAttributeDescriptor * attr);
  594.  
  595. EXTERN_API_C( OAMStatus )
  596. OAMSetNotificationProc            (OAMSessionID             sessID,
  597.                                  OAMNotificationUPP     procPtr,
  598.                                  OAMOption *            options);
  599.  
  600. EXTERN_API_C( OAMStatus )
  601. OAMRequestNotification            (OAMSessionID             sessionID,
  602.                                  OAMNotificationSpec *    notificationSpec,
  603.                                  OAMOption *            options);
  604.  
  605. EXTERN_API_C( OAMStatus )
  606. OAMBecomeHelperThread            (void);
  607.  
  608. EXTERN_API_C( OAMStatus )
  609. OAMStartService                    (OAMSessionID             sessID,
  610.                                  OAMObjectSpec *        objectSpec,
  611.                                  OAMOption *            options);
  612.  
  613. EXTERN_API_C( OAMStatus )
  614. OAMStopService                    (OAMSessionID             sessID,
  615.                                  OAMObjectSpec *        objectSpec,
  616.                                  OAMOption *            options);
  617.  
  618. EXTERN_API_C( OAMStatus )
  619. OAMAuthenticateObject            (OAMSessionID             sessID,
  620.                                  OAMAuthenticateInfo *    authInfo,
  621.                                  OAMBufferDescriptor *    inDescriptor,
  622.                                  OAMBufferDescriptor *    outDescriptor,
  623.                                  OAMOption *            options);
  624.  
  625. EXTERN_API_C( OAMStatus )
  626. OAMChangeObjectKey                (OAMSessionID             sessID,
  627.                                  OAMAuthenticateInfo *    authInfo,
  628.                                  OAMBufferDescriptor *    inDescriptor,
  629.                                  OAMBufferDescriptor *    outDescriptor,
  630.                                  OAMOption *            options);
  631.  
  632.  
  633.  
  634. #if PRAGMA_STRUCT_ALIGN
  635.     #pragma options align=reset
  636. #elif PRAGMA_STRUCT_PACKPUSH
  637.     #pragma pack(pop)
  638. #elif PRAGMA_STRUCT_PACK
  639.     #pragma pack()
  640. #endif
  641.  
  642. #ifdef PRAGMA_IMPORT_OFF
  643. #pragma import off
  644. #elif PRAGMA_IMPORT
  645. #pragma import reset
  646. #endif
  647.  
  648. #ifdef __cplusplus
  649. }
  650. #endif
  651.  
  652. #endif /* __APPLESHAREREGISTRY__ */
  653.  
  654.